package com.eliansun.util;

import org.apache.commons.lang.StringUtils;

import java.math.BigDecimal;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author xpq
 * @create 2017-08-29 下午1:22
 **/
public class StringUtil {

    public static String getNubmer(String str) {
        if (StringUtils.isEmpty(str)) {
            return "";
        }
        String regex = "[^0-9]";
        Pattern pattern = Pattern.compile(regex);
        String result = pattern.matcher(str.trim()).replaceAll("").trim();
        return result;
    }


    public static String replaceBlank(String str) {
        String dest = "";
        if (str!=null) {
            Pattern p = Pattern.compile("\\s*|\t|\r|\n");
            Matcher m = p.matcher(str);
            dest = m.replaceAll("");
        }
        return dest;
    }

    /**
     * 提供（相对）精确的除法运算。当发生除不尽的情况时，由scale参数指 定精度，以后的数字四舍五入。
     *
     * @param v1
     *            被除数
     * @param v2
     *            除数
     * @param scale
     *            表示表示需要精确到小数点以后几位。
     * @return 两个参数的商
     */
    public static double div(double v1, double v2, int scale) {
        if (scale < 0) {
        }
        BigDecimal b1 = new BigDecimal(Double.toString(v1));
        BigDecimal b2 = new BigDecimal(Double.toString(v2));
        return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

    public static String trim(String str){
        if(str!=null&&!"".equals(str)){
            str = str.trim();
            str = str.replace(" ","");
            if (str.indexOf("\u00A0") != -1) {
                str= str.replaceAll("\u00A0", "");
            }
        }
        return str;
    }

    public final static boolean isNumeric(String s) {
        if (s != null && !"".equals(s.trim()))
            return s.matches("^[0-9]*$");
        else
            return false;
    }
}
